package com.atguigu.gmall.realtime.func;

import com.atguigu.gmall.realtime.util.KeyWordUtil;
import org.apache.flink.table.annotation.DataTypeHint;
import org.apache.flink.table.annotation.FunctionHint;
import org.apache.flink.table.functions.TableFunction;
import org.apache.flink.types.Row;

/**
 * @author caodan
 * @version 1.0
 * @date 2022-10-08 17:24
 * 自定义UDTF函数
 */
@FunctionHint(output = @DataTypeHint("ROW<word STRING>"))
public class KeyWordUDTF extends TableFunction<Row> {

    /**
     * 自定义函数
     *
     * @param str 分词文本
     */
    public void eval(String str) {
        for (String keyword : KeyWordUtil.analyze(str)) {
            collect(Row.of(keyword));
        }
    }
}

